#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int n, i, j, ni, nj, a[100][100] = { 0 };
	scanf("%d", &n);

	i = 0;  //把1放在第一行
	j = n / 2;  //把1放在中间一列
	for (int k = 1; k <= n * n; k++)
	{
		a[i][j] = k;
		if (i == 0)  //如果右上方位置到达第一行上方
			ni = n - 1;  //则放置到最后一行
		else
			ni = i - 1;  //放置在右上方,行数-1

		if (j == n - 1)  //如果右上方位置超过最后一列
			nj = 0;  //则放置到第一列
		else
			nj = j + 1;  //放置在右上方,列数+1

		if (a[ni][nj] == 0)  //如果右上方位置没有数字
		{
			i = ni;
			j = nj;
		}
		else  //如果右上方位置已经有数字了
			i += 1;  //放置在正下方(下一行的同一列)
	}

	for (i = 0; i < n; i++)  //控制行数
	{
		for (j = 0; j < n; j++)  //控制列数
			printf("%4d", a[i][j]);
		printf("\n");
	}
	return 0;
}